package algorithm;

public class leetcode_0125 {
    public boolean isPalindrome(String s) {
        if(s.equals("")) return true;
        char[] list=s.toCharArray();
        int len=list.length;
        for(int i=0;i<len;++i){
            if(list[i]>='A'&&list[i]<='Z'){
                list[i]=(char) ((list[i]-'A')+'a');
            }
        }

        for(int left=0,right=len-1;left<right;){
            if((list[left]>='a'&&list[left]<='z'||list[left]>='0'&&list[left]<='9')&&
                    (list[right]>='a'&&list[right]<='z'||list[right]>='0'&&list[right]<='9')){
                if(list[left]!=list[right]) return false;
                left++;right--;
            }
            else {
                if(!(list[left]>='a'&&list[left]<='z'||list[left]>='0'&&list[left]<='9')){
                    left++;
                }
                if(!(list[right]>='a'&&list[right]<='z'||list[right]>='0'&&list[right]<='9')){
                    right--;
                }
            }
        }
        return true;
    }
}
